استخدام Samba للتواصل الشبكي بين أوبنتو وويندوز لمشاركة الملفات وللطباعة
تُعد مسألة التكامل بين أنظمة التشغيل المختلفة من القضايا الحيوية في بيئات العمل المختلطة، حيث تتواجد أجهزة حاسوب تعمل بأنظمة تشغيل متنوعة كويندوز ولينكس. من بين الأدوات الفعّالة التي تتيح تحقيق هذا التكامل، يبرز برنامج Samba بوصفه حلاً شاملاً ومرناً لتبادل الملفات وتقديم خدمات الطباعة بين أنظمة لينكس (مثل أوبنتو) وأنظمة ويندوز، إذ يُمكّن من مشاركة الموارد الشبكية بكل سلاسة وفعالية. يُعتبر Samba تجسيداً لتنفيذ بروتوكولات SMB/CIFS (Server Message Block/Common Internet File System)، ما يسمح للأجهزة العاملة بنظام لينكس بمحاكاة خوادم ويندوز والتفاعل مع الأجهزة الأخرى على الشبكة باستخدام هذه البروتوكولات.
في هذا السياق، يوفر Samba إمكانيات عديدة تشمل مشاركة الملفات والطابعات، الانضمام إلى نطاق Active Directory، وتحديد صلاحيات الوصول للمستخدمين، إلى جانب إمكانية التحقق من الهوية والمصادقة بطريقة متوافقة مع بيئة Windows. من هنا تأتي أهمية التعمق في فهم كيفية إعداد Samba في أوبنتو لتمكين المشاركة الشبكية مع أجهزة ويندوز، مع التركيز على الأمان، الأداء، وسهولة الاستخدام.
مفهوم Samba ودوره في التواصل الشبكي
تم تطوير Samba في الأصل بواسطة Andrew Tridgell في أوائل التسعينيات، ويُعد مشروعاً مفتوح المصدر يُتيح لأنظمة يونكس ولينكس التفاعل مع بروتوكولات ويندوز الشبكية. يوفّر Samba وسيلة لإنشاء خادم ملفات وطباعة على نظام أوبنتو، بحيث يتمكن المستخدمون على شبكات ويندوز من الوصول إلى الموارد بنفس الكفاءة وكأنها مُقدَّمة من خادم Windows فعلي. كما يدعم Samba المصادقة مع Active Directory وLDAP، ما يُمكّنه من العمل في بيئات شبكية مؤسسية معقدة.
تثبيت Samba على أوبنتو
لبداية استخدام Samba على نظام Ubuntu، يجب أولاً تثبيت الحزمة الضرورية عبر سطر الأوامر. العملية تبدأ بتنفيذ الأوامر التالية:
bashsudo apt update sudo apt install samba
بعد التثبيت، يتم تفعيل خدمة smbd تلقائياً، وهي المسؤولة عن تشغيل خادم Samba. يمكن التحقق من حالة الخدمة باستخدام الأمر:
bashsudo systemctl status smbd
ينبغي أن تكون الخدمة نشطة (active) وتعمل دون أخطاء. في حال وجود مشاكل، يمكن مراجعة السجلات باستخدام:
bashsudo journalctl -xe
إعداد مشاركة الملفات بين أوبنتو وويندوز
إنشاء مجلد للمشاركة
أول خطوة عملية بعد تثبيت Samba تتمثل في تحديد المجلدات التي ستُشارك مع أجهزة ويندوز. على سبيل المثال، لإنشاء مجلد باسم partage في دليل /srv، نستخدم:
bashsudo mkdir -p /srv/partage
sudo chown nobody:nogroup /srv/partage
sudo chmod 0777 /srv/partage
هذه الأذونات تتيح لجميع المستخدمين على الشبكة الوصول إلى هذا المجلد بدون قيود، وهو خيار مناسب للشبكات المنزلية أو البيئات المفتوحة.
تعديل ملف إعدادات Samba
ملف الإعداد الرئيسي لـ Samba يُوجد في المسار:
bash/etc/samba/smb.conf
لإعداد مشاركة جديدة، يتم تحرير الملف باستخدام محرر نصي مثل nano:
bashsudo nano /etc/samba/smb.conf
ثم نُضيف التكوين التالي في نهاية الملف:
ini[Partage]
path = /srv/partage
browseable = yes
read only = no
guest ok = yes
هذا التكوين يُنشئ مشاركة باسم Partage، ويُتيح الوصول إلى المجلد للجميع دون الحاجة إلى مصادقة.
إعادة تشغيل خدمة Samba
بعد حفظ التعديلات، يجب إعادة تشغيل الخدمة لتطبيق الإعدادات الجديدة:
bashsudo systemctl restart smbd
الوصول إلى المشاركة من جهاز ويندوز
على جهاز يعمل بنظام Windows، يمكن الوصول إلى المشاركة عبر متصفح الملفات باستخدام المسار التالي:
\\adresse_ip_ubuntu\Partage
حيث يتم استبدال adresse_ip_ubuntu بعنوان IP الخاص بجهاز أوبنتو. يمكن معرفة العنوان باستخدام الأمر:
baship a
تظهر نافذة تطلب بيانات اعتماد، أو قد يُسمح بالدخول مباشرة إذا كان الوصول كـ “guest” مفعلاً كما في الإعدادات السابقة.
مشاركة الطابعات عبر Samba
Samba يُمكّن أيضاً من مشاركة الطابعات المثبتة على نظام أوبنتو مع أجهزة ويندوز، وهو أمر مهم في المكاتب أو البيئات الشبكية التي تعتمد على طابعات موصولة محلياً بأجهزة لينكس.
تثبيت CUPS (نظام الطباعة الموحد)
أوبنتو يعتمد على نظام CUPS لإدارة الطباعة. لتثبيته وضبطه:
bashsudo apt install cups
sudo usermod -a -G lpadmin $USER
ثم نُفعّل الوصول إلى واجهة الويب:
bashsudo cupsctl --remote-any sudo systemctl restart cups
واجهة CUPS تُتاح عبر المتصفح:
arduinohttp://localhost:631
ضبط Samba لمشاركة الطابعات
نُعدّل ملف /etc/samba/smb.conf مرة أخرى، ونُضيف الجزء التالي:
ini[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = yes
writable = no
printable = yes
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no
ثم نعيد تشغيل Samba وCUPS:
bashsudo systemctl restart smbd sudo systemctl restart cups
بذلك، ستظهر الطابعات المُشاركة لأجهزة ويندوز على الشبكة ويمكن تثبيتها عبر “إضافة طابعة”.
التحكم في الصلاحيات والمستخدمين
Samba يُتيح تحكماً متقدماً في أذونات الوصول. بدلاً من إتاحة المشاركة للجميع، يمكن تقييد الوصول لمستخدمين محددين.
إنشاء مستخدم Samba
bashsudo smbpasswd -a nom_utilisateur
هذا المستخدم يجب أن يكون موجوداً في النظام أولاً. لإنشائه:
bashsudo adduser nom_utilisateur
بعد ذلك، نُعدّل الإعدادات في smb.conf:
ini[Partage]
path = /srv/partage
browseable = yes
read only = no
valid users = nom_utilisateur
بهذه الطريقة، يتم منع الوصول إلا للمستخدم الذي نُحدد اسمه في الإعدادات.
الجدول التالي يُوضح الفروقات بين أنواع مشاركة Samba:
| العنصر | مشاركة عامة (Guest) | مشاركة مخصصة (بمستخدمين) |
|---|---|---|
| مستوى الأمان | منخفض | مرتفع |
| صلاحيات التعديل | مفتوحة | مقيّدة حسب المستخدم |
| الاستخدام النموذجي | شبكات منزلية | شبكات مكتبية/مؤسسية |
| يتطلب مصادقة؟ | لا | نعم |
| دعم سجلات الوصول | محدود | موسع |
مراقبة واختبار الاتصال
للتأكد من عمل Samba بشكل سليم، يمكن استخدام أوامر مثل:
bashsmbclient -L localhost
يعرض هذا الأمر قائمة بالمشاركات المتاحة. كما يمكن التحقق من الاتصال من ويندوز باستخدام الأمر:
cmdnet view \\adresse_ip_ubuntu
في حال ظهور أخطاء، يجب مراجعة السجلات في:
bash/var/log/samba/log.smbd
أو استخدام أدوات تصحيح مثل testparm للتحقق من صحة ملف الإعدادات:
bashtestparm
الأمن وتشفير الاتصال
في البيئات التي تتطلب مستوى أمان مرتفع، يُنصح بتفعيل تشفير الاتصال بين Samba والأجهزة العميلة، وذلك عبر تعديل ملف الإعداد:
ini[global]
smb encrypt = required
يجب التأكد من أن الأجهزة العميلة (مثل Windows 10/11) تدعم تشفير SMB3 لضمان التوافق.
تكامل Samba مع Active Directory
في البيئات المهنية الكبيرة، غالباً ما يكون هناك خادم Active Directory مركزي لإدارة الهوية. يمكن ربط أوبنتو بشبكة Windows Domain باستخدام أدوات مثل realmd وwinbind وkrb5.
عملية الانضمام تبدأ بـ:
bashsudo apt install realmd sssd adcli
sudo realm join --user=administrateur domaine.local
ثم تُضبط إعدادات Samba لتدعم المصادقة عبر Active Directory باستخدام تهيئة security = ads وrealm = domaine.local داخل smb.conf.
تحديثات ودعم Samba
كون Samba مشروعاً مفتوح المصدر ونشط التطوير، فإنه يتلقى تحديثات دورية تتضمن تصحيحات أمان وتحسينات في الأداء. يُنصح دوماً بالحفاظ على النظام محدثاً باستخدام:
bashsudo apt update && sudo apt upgrade
كما تُتاح التحديثات الرئيسية عبر مستودعات التوزيعة أو بإعادة بناء Samba من المصدر عند الحاجة إلى ميزات حديثة غير مدعومة في الإصدارات القديمة.
الخلاصة التقنية
Samba يُمثل أداة قوية ومفتوحة المصدر تُسهم في سد الفجوة بين أنظمة لينكس وويندوز في مجال مشاركة الموارد الشبكية، سواء على مستوى الملفات أو الطابعات. بفضل مرونته ودعمه لبروتوكولات Windows التقليدية، يُستخدم على نطاق واسع في البيئات المنزلية والمهنية، ويوفّر مستويات مختلفة من الأمان والصلاحيات حسب احتياج المستخدم أو المؤسسة. يُتيح Samba كذلك تكاملاً سلساً مع أنظمة Active Directory، مما يجعله خياراً مثالياً لبناء شبكات هجينة متعددة الأنظمة مع الحفاظ على كفاءة العمل والتواصل الآمن بين المستخدمين.
المراجع:
-
Samba Project Documentation – https://www.samba.org/samba/docs/
-
Ubuntu Community Help Wiki – https://help.ubuntu.com/community/Samba

